<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="source from https://youtu.be/Li2apfUzKeE">
    <title>玻璃时钟</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
        }

        body::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(45deg, #e91e63, #e91e63 50%, #ffc107 50%, #ffc107);
        }

        body::after {
            content: "";
            position: absolute;
            top: -20px;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(160deg, #03a9f4, #03a9f4 50%, transparent 50%, transparent);
            animation: animate 5s ease-in-out infinite;
        }

        @keyframes animate {

            0%,
            100% {
                transform: translateY(10px);
            }

            50% {
                transform: translateY(-10px);
            }
        }

        .container {
            position: relative;
        }

        .container::before {
            content: "";
            position: absolute;
            bottom: -150px;
            width: 100%;
            height: 60px;
            background: radial-gradient(rgba(0, 0, 0, 0.2), transparent, transparent);
            border-radius: 50%;
        }

        .box {
            position: relative;
            z-index: 1;
            max-width: 400px;
            max-height: 400px;
            min-width: 350px;
            min-height: 350px;
            backdrop-filter: blur(25px);
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, .5);
            animation: animate 5s ease-in-out infinite;
            animation-delay: -2.5s;
        }

        .clock {
            position: absolute;
            top: 10px;
            left: 10px;
            right: 10px;
            bottom: 10px;
            display: flex;
            justify-content: center;
            align-items: center;
            background: radial-gradient(transparent, rgba(255, 255, 255, .2)), url();
            background-size: contain;
            border-radius: 50%;
            backdrop-filter: blur(25px);
            border: 1px solid rgba(255, 255, 255, .5);
            border-bottom: none;
            border-right: none;
            box-shadow: -10px -10px 20px rgba(255, 255, 255, .1), 10px 10px 20px rgba(0, 0, 0, 0.1), 0px 40px 50px rgba(0, 0, 0, 0.2);
        }

        .clock::before {
            content: "";
            position: absolute;
            width: 15px;
            height: 15px;
            background: #fff;
            border-radius: 50%;
            z-index: 100;
        }

        .hour,
        .min,
        .sec {
            position: absolute;

        }

        .hour,
        .hr {
            width: 166px;
            height: 166px;
        }

        .min,
        .mn {
            width: 190px;
            height: 190px;
        }

        .sec,
        .sc {
            width: 230px;
            height: 230px;
        }

        .hr,
        .mn,
        .sc {
            display: flex;
            justify-content: center;
            position: relative;
            border-radius: 50%;

        }

        .hr::before {
            content: "";
            position: absolute;
            width: 8px;
            height: 80px;
            background: #ff105e;
            z-index: 11;
            border-radius: 6px;
        }

        .mn::before {
            content: "";
            position: absolute;
            width: 4px;
            height: 90px;
            background: #fff;
            z-index: 12;
            border-radius: 6px;
        }

        .sc::before {
            content: "";
            position: absolute;
            width: 2px;
            height: 150px;
            background: #ddd;
            z-index: 13;
            border-radius: 6px;
        }
    </style>
</head>

<body>
    <div class="container">
        <div class="box">
            <div class="clock">
                <div class="hour">
                    <div class="hr" id="hr"></div>
                </div>
                <div class="min">
                    <div class="mn" id="mn"></div>
                </div>
                <div class="sec">
                    <div class="sc" id="sc"></div>
                </div>
            </div>
        </div>
    </div>
    <script>
        const deg = 6;
        const hr = document.querySelector("#hr");
        const mn = document.querySelector("#mn");
        const sc = document.querySelector("#sc");

        function start() {
            let day = new Date();
            let h = day.getHours() * 30;
            let m = day.getMinutes() * deg;
            let s = day.getSeconds() * deg;
            hr.style.transform = `rotateZ(${h+(m/12)}deg)`;
            mn.style.transform = `rotateZ(${m}deg)`;
            sc.style.transform = `rotateZ(${s}deg)`;
        }
        start();
        setInterval(start, 1000);
    </script>
</body>

</html>